package cn.com.sinosoft.exam.controller;

import java.util.List;
import java.util.Map;

import cn.com.sinosoft.exam.model.FollowResult;
import cn.com.sinosoft.exam.model.RequestModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import cn.com.sinosoft.exam.annotation.PageParamer;
import cn.com.sinosoft.exam.model.Follow;
import cn.com.sinosoft.exam.model.Patient;
import cn.com.sinosoft.exam.page.PageParam;
import cn.com.sinosoft.exam.service.PatientService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;

/**
 * 
 * 患者管理控制器
 * @author 刘韵琴
 *
 */
@Slf4j
@RestController
@RequestMapping("/patient")
@Api(tags = "患者管理Api")
public class PatientController {
	
	@Autowired
	PatientService patientService;
	
	/**
	 * 临时生成Model属性说明使用
	 * 忽略该方法
	 * @param
	 * @return
	 */
	@ApiOperation(value="查询患者列表", hidden=true)
	@GetMapping("/temp")
	ResponseEntity<?> temp(@RequestBody Patient patient, @RequestBody Follow follow) {
		return null;
	}

//	/**
//	 * 分页示例
//	 * 查询患者列表
//	 * @param params
//	 * @return
//	 */
//	@ApiOperation("查询患者列表")
//	@GetMapping("/page")
//	ResponseEntity<?> pagePatient(@ApiParam("查询条件") @RequestParam Map<String, Object> params,
//			@PageParamer PageParam pageParam) {
//		log.info("查询患者列表：{}", params);
//		return ResponseEntity.ok(patientService.page(params, pageParam));
//	}

	/**
	 * 查询该机构下患者最近一个月的访视记录
	 * @param params
	 * @return
	 */
	@GetMapping("/queryOneMonthInterview")
	ResponseEntity<?> findNewFollowByOrgcode(@RequestParam String params,
											 @PageParamer PageParam pageParam){
		System.out.println("参数"+params);
		FollowResult result = patientService.findNewFollowByOrgcode(pageParam, params);
		return ResponseEntity.ok(result);
	}

	/**
	 * 2、更新条件为患者机构，更新当前机构下所有患者建档时间为2018年1月1日以后的且存在访视记录的患者，建档时间为2019年1月1日。
	 * 服务名  patient/updatePatient   请求方式 Patch 返回对象为 int 即为成功更新条数。
	 */
	@PostMapping("/updatePatient")
	ResponseEntity<?> updateByOrgcode(@RequestBody RequestModel  res){
		System.out.println(res.getOrgcode());//44188101


	 int count=	patientService.updateByOrgcode(res.getOrgcode());
		System.out.println("数量"+count);
	 return ResponseEntity.ok(count);

		}

}
